Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 May 2007 01:03:58 +0100
From:      Rui Paulo <rpaulo@fnop.net>
To:        freebsd-smp@freebsd.org
Subject:   Fixing SMP on MacBooks
Message-ID:  <86sla45iq9.wl%rpaulo@fnop.net>

next in thread | raw e-mail | index | archive | help
Hi,
I would like to bring this discussion to a wider audicence.

So, here's the problem:
As some of you already know, the second core on Apple's MacBooks fails
to start. There are two nasty tricks to make it start (both involve
interactivity from the user) that I know of.

They are:
	1) Press the power button during the IPI timeout;
	2) Press a key [1] before the IPIs are sent *OR* during the
	   IPI timeout.

[1] This is really an interrupt. Pressing the Fn key doesn't work
because the Fn key doesn't generate an interrupt.

There tricks don't work on the MacBook Pro. While the source of the
problem might be the same, it's not clear why the tricks work.

Some ideas (came up during discussion with Scott Long)
	1) Update EFI -- I have the latest updates from Apple and the
	   AP doesn't start.

	2) The trampoline isn't being set correctly -- if that was the
	   case, the tricks wouldn't really work

	3) Check what kind of interrupt is generated by the USB
	   controller

	4) The LAPIC is not being set correctly -- I've been reading
	   the Linux code on this matter and I don't see any relevant
	   difference

	5) The boot loader is doing something legacy only [2]

[2] This was true for cdboot, at least.

Either way, an interrupt is (it seems):
	1) triggering a (re)configuration of something; or
	2) enabling another interrupt(s)

Anyone has any other ideas on how to better debug this ?

Thanks in advance.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86sla45iq9.wl%rpaulo>